package com.softer.wxzj.service;

import com.github.pagehelper.PageInfo;
import com.softer.wxzj.common.entity.CommonResult;
import com.softer.wxzj.common.entity.Page;
import com.softer.wxzj.entity.ExpPayReq;
import com.softer.wxzj.entity.ExpRevocation;

/**
 * @author Gong Zhiyang
 * @date 2019/8/10
 */
public interface ExpRevocationService {
    /**
     * 维修项目撤销列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 列表
     */
    PageInfo<ExpRevocation> getProjectList(Page page, ExpRevocation expRevocation);
    /**
     * 项目撤销提交
     *
     * @param expRevocation 撤销实体
     *                      id 项目ID
     *                      revocatDate 撤销日期
     *                      revocatReason 撤销原因
     * @return 提交结果
     */
    CommonResult projectRevocation(ExpRevocation expRevocation);
    /**
     * 拨款申请撤回列表
     *
     * @param page      分页实体
     * @param expPayReq 查询实体
     * @return 列表
     */
    PageInfo<ExpPayReq> getPayList(Page page, ExpPayReq expPayReq);
    /**
     * 拨款申请撤销
     *
     * @param expRevocation 撤销实体
     *                      id 拨款申请ID
     *                      revocatDate 撤销日期
     *                      revocatReason 撤销原因
     * @return 提交结果
     */
    CommonResult payRevocation(ExpRevocation expRevocation);
    /**
     * 撤销查询列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 撤销列表
     */
    PageInfo<ExpRevocation> revocationSearch(Page page, ExpRevocation expRevocation);
    /**
     * 查询项目撤销审批列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 审批列表
     */
    PageInfo<ExpRevocation> getProjectAuditList(Page page, ExpRevocation expRevocation);
    /**
     * 审核
     *
     * @param id      ID
     * @param opinion 审核意见
     * @param mark    审批通过 audit_pass
     *                审批否决 audit_veto
     *                审批退回 audit_back
     * @return 审核结果
     */
    CommonResult audit(String id, String opinion, String mark);
    /**
     * 查询拨款申请撤销审批列表
     *
     * @param page          分页实体
     * @param expRevocation 查询实体
     * @return 审批列表
     */
    PageInfo<ExpRevocation> getPayAuditList(Page page, ExpRevocation expRevocation);
}
